package mysql

import "gorm.io/gorm"

type PermissionWeb struct {
	WebId         int             `gorm:"web_id" json:"web_id"`
	WebPid        int             `gorm:"web_pid" json:"web_pid"`
	WebPath       string          `gorm:"web_path" json:"web_path"`
	WebTo         string          `gorm:"web_to" json:"web_to"`
	WebContent    string          `gorm:"web_content" json:"web_content"`
	WebIcon       string          `gorm:"web_icon" json:"web_icon"`
	WebSort       int             `gorm:"web_sort" json:"web_sort"`
	WebStatu      int             `gorm:"web_statu" json:"web_statu"` // 1启用 2不启用
	PermissionWeb []PermissionWeb `gorm:"-" json:"children"`
}

func (PermissionWeb) TableName() string {
	return "permission_web"
}

type PermissionApi struct {
	ApiId      int    `gorm:"api_id" json:"api_id"`
	ApiContent string `gorm:"api_content" json:"api_content"` // 说明
	ApiMethod  string `gorm:"api_method" json:"api_method"`   // 请求方法
	ApiPath    string `gorm:"api_path" json:"api_path"`       // 请求地址
	ApiStatu   int    `gorm:"api_statu" json:"api_statu"`     // 1启用 2禁用
}

func (PermissionApi) TableName() string {
	return "permission_api"
}

func (u *PermissionApi) BeforeSave(tx *gorm.DB) (err error) {
	tx.Where("api_id = ? ", u.ApiId)
	return
}

type Roles struct {
	RuleId      int    `gorm:"primarykey" gorm:"rule_id" json:"rule_id"`
	RoleName    string `gorm:"role_name" json:"role_name"`         // 权限名称
	RoleContent string `gorm:"role_content" json:"role_content"`   // 描述
	RoleApiList string `gorm:"role_api_list" json:"role_api_list"` // 拥有的api能力
	RoleWebList string `gorm:"role_web_list" json:"role_web_list"` // 拥有的web能力
}

func (Roles) TableName() string {
	return "roles"
}
